home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume10 / boxx / patch1 next >
Encoding:
Internet Message Format  |  1990-12-09  |  68.5 KB

  1. Path: uunet!know!cs.utexas.edu!sun-barr!newstop!exodus!appserv!melmac.harris-atd.com
  2. From: chuck@melmac.harris-atd.com (Chuck Musciano)
  3. Newsgroups: comp.sources.x
  4. Subject: v10i091: boss -- transfer data from Casio BOSS to workstations, Patch1, Part01/01
  5. Message-ID: <334@appserv.Eng.Sun.COM>
  6. Date: 1 Dec 90 08:25:35 GMT
  7. References: <csx-10i091:boxx@uunet.UU.NET>
  8. Sender: news@exodus.Eng.Sun.COM
  9. Lines: 2166
  10. Approved: argv@sun.com
  11.  
  12. Submitted-by: chuck@melmac.harris-atd.com (Chuck Musciano)
  13. Posting-number: Volume 10, Issue 91
  14. Archive-name: boxx/patch1
  15. Patch-To: boxx: Volume 10, Issue 3-8
  16.  
  17.      This is the first patch to Boss, bringing Boss to version 1.0a.
  18.      
  19.      This patch fixes a few minor bugs in Boss, adds an "About Boss..."
  20. window and the ability to send mail to the developer, and provides a
  21. warning when users attempt to download data to the BOSS at 9600 baud.
  22.  
  23. Chuck Musciano                ARPA  : chuck@trantor.harris-atd.com
  24. Harris Corporation             Usenet: ...!uunet!x102a!trantor!chuck
  25. PO Box 37, MS 3A/1912            AT&T  : (407) 727-6131
  26. Melbourne, FL 32902            FAX   : (407) 729-2537
  27.  
  28. A good newspaper is never good enough,
  29.     but a lousy newspaper is a joy forever.        -- Garrison Keillor
  30.  
  31. #! /bin/sh
  32. # This is a shell archive.  Remove anything before this line, then unpack
  33. # it by saving it into a file and typing "sh file".  To overwrite existing
  34. # files, type "sh file -c".  You can also feed this as standard input via
  35. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  36. # will see the following message at the end:
  37. #        "End of shell archive."
  38. # Contents:  patch
  39. # Wrapped by chuck@melmac on Fri Nov 30 08:46:05 1990
  40. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  41. if test -f 'patch' -a "${1}" != "-c" ; then 
  42.   echo shar: Will not clobber existing file \"'patch'\"
  43. else
  44. echo shar: Extracting \"'patch'\" \(65348 characters\)
  45. sed "s/^X//" >'patch' <<'END_OF_FILE'
  46. X*** Makefile.orig    Fri Nov 30 08:44:04 1990
  47. X--- Makefile    Thu Nov  1 16:19:05 1990
  48. X***************
  49. X*** 8,13 ****
  50. X--- 8,16 ----
  51. X  # Where to install the help file
  52. X  HELPDIR        = /usr/local/lib/help
  53. X  
  54. X+ # Your system mailer
  55. X+ MAILER        = /usr/ucb/mail
  56. X+ 
  57. X  # Where you installed Open Windows
  58. X  OPENWINHOME    = /usr/openwin
  59. X  
  60. X***************
  61. X*** 15,30 ****
  62. X  LDFLAGS        = -L$(OPENWINHOME)/lib
  63. X  
  64. X  # Where your XView include files are installed
  65. X! CPPFLAGS    = -I$(OPENWINHOME)/include
  66. X  
  67. X! OFILES    =     boss.o boss_ui.o calentool.o casio_master.o casio_slave.o \
  68. X!         database.o do_clear.o do_load.o do_port.o do_schedule.o do_store.o \
  69. X!         expand.o misc.o object.o packet.o parse.o print.o \
  70. X!         record.o window_misc.o
  71. X  
  72. X  OPTIONS        = -O
  73. X  
  74. X! CPPFLAGS    = -I$(OPENWINHOME)/include
  75. X  LDFLAGS        = -L$(OPENWINHOME)/lib
  76. X  LDLIBS        = -lxview -lolgx -lX
  77. X  
  78. X--- 18,34 ----
  79. X  LDFLAGS        = -L$(OPENWINHOME)/lib
  80. X  
  81. X  # Where your XView include files are installed
  82. X! CPPFLAGS    = -I$(OPENWINHOME)/include -DMAILER=\"$(MAILER)\"
  83. X  
  84. X! OFILES        = about.o boss.o boss_ui.o busy.o calentool.o casio_master.o casio_slave.o \
  85. X!           database.o do_clear.o do_load.o do_port.o do_schedule.o do_store.o \
  86. X!           expand.o filename_completion.o list_misc.o misc.o object.o packet.o \
  87. X!           parse.o pinned_menu_notify.o place_dialog.o print.o \
  88. X!           record.o send_mail.o window_misc.o
  89. X  
  90. X  OPTIONS        = -O
  91. X  
  92. X! CPPFLAGS    = -I$(OPENWINHOME)/include -DMAILER=\"$(MAILER)\"
  93. X  LDFLAGS        = -L$(OPENWINHOME)/lib
  94. X  LDLIBS        = -lxview -lolgx -lX
  95. X  
  96. X*** Imakefile.orig    Fri Nov 30 08:44:07 1990
  97. X--- Imakefile    Thu Nov  1 16:19:05 1990
  98. X***************
  99. X*** 2,22 ****
  100. X  
  101. X  HELPDIR        = /usr/local/lib/help
  102. X  
  103. X  LOCAL_LIBRARIES = -lxview -lolgx $(XLIB)
  104. X  
  105. X  LDOPTIONS    = -L$(OPENWINHOME)/lib
  106. X  
  107. X! CFLAGS        = -O -I$(OPENWINHOME)/include
  108. X  
  109. X! SRCS        = boss.c boss_ui.c calentool.c casio_master.c casio_slave.c \
  110. X            database.c do_clear.c do_load.c do_port.c do_schedule.c do_store.c \
  111. X!           expand.c misc.c object.c packet.c parse.y print.c \
  112. X!           record.c window_misc.c
  113. X  
  114. X! OBJS        = boss.o boss_ui.o calentool.o casio_master.o casio_slave.o \
  115. X            database.o do_clear.o do_load.o do_port.o do_schedule.o do_store.o \
  116. X!           expand.o misc.o object.o packet.o parse.o print.o \
  117. X!           record.o window_misc.o
  118. X  
  119. X  ComplexProgramTarget(boss)
  120. X  
  121. X--- 2,24 ----
  122. X  
  123. X  HELPDIR        = /usr/local/lib/help
  124. X  
  125. X+ MAILER        = /usr/ucb/mail
  126. X+ 
  127. X  LOCAL_LIBRARIES = -lxview -lolgx $(XLIB)
  128. X  
  129. X  LDOPTIONS    = -L$(OPENWINHOME)/lib
  130. X  
  131. X! CFLAGS        = -O -I$(OPENWINHOME)/include -DMAILER=\"$(MAILER)\"
  132. X  
  133. X! SRCS        = about.c boss.c boss_ui.c busy.c calentool.c casio_master.c casio_slave.c \
  134. X            database.c do_clear.c do_load.c do_port.c do_schedule.c do_store.c \
  135. X!           expand.c filename_completion.c list_misc.c misc.c object.c packet.c parse.y pinned_menu_notify.c place_dialog.c print.c \
  136. X!           record.c send_mail.c window_misc.c
  137. X  
  138. X! SRCS        = about.o boss.o boss_ui.o busy.o calentool.o casio_master.o casio_slave.o \
  139. X            database.o do_clear.o do_load.o do_port.o do_schedule.o do_store.o \
  140. X!           expand.o filename_completion.o list_misc.o misc.o object.o packet.o parse.o pinned_menu_notify.o place_dialog.o print.o \
  141. X!           record.o send_mail.o window_misc.o
  142. X  
  143. X  ComplexProgramTarget(boss)
  144. X  
  145. X*** boss.info.orig    Fri Nov 30 08:44:09 1990
  146. X--- boss.info    Fri Nov 30 08:15:32 1990
  147. X***************
  148. X*** 7,13 ****
  149. X  Boss 1.0 provides an interface between your workstation and a Casio BOSS Digital Diary.  Using Boss 1.0, you can load and store data to and from your Casio BOSS.
  150. X  # 
  151. X  :file_button
  152. X! The "File" button provides access to the basic Boss functions: loading and storing data, as well as converting schedule items to other formats.
  153. X  # 
  154. X  :view_button
  155. X  The "View" button provides access to the "Clear entries" dialog box.
  156. X--- 7,13 ----
  157. X  Boss 1.0 provides an interface between your workstation and a Casio BOSS Digital Diary.  Using Boss 1.0, you can load and store data to and from your Casio BOSS.
  158. X  # 
  159. X  :file_button
  160. X! The "File" button provides access to the basic Boss functions: loading and storing data, as well as converting schedule items to other formats.  You can also read about the history of Boss, and send mail to the developer.
  161. X  # 
  162. X  :view_button
  163. X  The "View" button provides access to the "Clear entries" dialog box.
  164. X***************
  165. X*** 150,152 ****
  166. X--- 150,227 ----
  167. X  # 
  168. X  :schedule_accept
  169. X  When you click the "Schedule" button, the schedule items held in Boss memory will be converted to the desired format.  Certain files may be modified during the conversion.
  170. X+ # 
  171. X+ :about_controls
  172. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  173. X+ # 
  174. X+ :msg_1
  175. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  176. X+ # 
  177. X+ :msg_5
  178. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  179. X+ # 
  180. X+ :msg_6
  181. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  182. X+ # 
  183. X+ :msg_7
  184. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  185. X+ # 
  186. X+ :msg_8
  187. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  188. X+ # 
  189. X+ :msg_9
  190. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  191. X+ # 
  192. X+ :msg_11
  193. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  194. X+ # 
  195. X+ :msg_12
  196. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  197. X+ # 
  198. X+ :msg_13
  199. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  200. X+ # 
  201. X+ :msg_14
  202. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  203. X+ # 
  204. X+ :msg_16
  205. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  206. X+ # 
  207. X+ :msg_17
  208. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  209. X+ # 
  210. X+ :msg_18
  211. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  212. X+ # 
  213. X+ :msg_19
  214. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  215. X+ # 
  216. X+ :msg_20
  217. X+ This window gives you some details about the development of boss, encourages you to correspond with the developer to improve future versions of boss, and delineates the restrictions placed on the boss source code.
  218. X+ # 
  219. X+ :send_mail
  220. X+ Clicking this button will open another window in which you can compose and send mail to the developer of boss.
  221. X+ # 
  222. X+ :mail_controls
  223. X+ This window allows you to send mail concerning boss to its developer.  You are encouraged to send comments and suggestions in order to make boss a better tool.
  224. X+ # 
  225. X+ :msg_21
  226. X+ This window allows you to send mail concerning boss to its developer.  You are encouraged to send comments and suggestions in order to make boss a better tool.
  227. X+ # 
  228. X+ :msg_22
  229. X+ This window allows you to send mail concerning boss to its developer.  You are encouraged to send comments and suggestions in order to make boss a better tool.
  230. X+ # 
  231. X+ :address
  232. X+ This choice item lets you select the address to which your mail will be sent.  If your machine understands Internet-style addresses, you should use the first choice item.  If you are a UUCP-based site, you should use the second item.  If neither address works, use the third item to enter a valid address.
  233. X+ # 
  234. X+ :other_address
  235. X+ This text field is used to enter an e-mail address to which your mail will be sent.  It should only be used if the two default addresses do not work from your site.
  236. X+ # 
  237. X+ :mail_controls1
  238. X+ This window allows you to send mail concerning boss to its developer.  You are encouraged to send comments and suggestions in order to make boss a better tool.
  239. X+ # 
  240. X+ :accept_send
  241. X+ Clicking this button will send your mail message to boss's developer.
  242. X+ # 
  243. X+ :cancel_mail
  244. X+ Clicking this button cancels the message you were going to send.
  245. X*** about.c.orig    Fri Nov 30 08:44:10 1990
  246. X--- about.c    Thu Nov  1 16:15:59 1990
  247. X***************
  248. X*** 0 ****
  249. X--- 1,56 ----
  250. X+ /************************************************************************/
  251. X+ /*    Copyright 1990 by Chuck Musciano and Harris Corporation        */
  252. X+ /*                                    */
  253. X+ /*    Permission to use, copy, modify, and distribute this software    */
  254. X+ /*    and its documentation for any purpose and without fee is    */
  255. X+ /*    hereby granted, provided that the above copyright notice    */
  256. X+ /*    appear in all copies and that both that copyright notice and    */
  257. X+ /*    this permission notice appear in supporting documentation, and    */
  258. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  259. X+ /*    used in advertising or publicity pertaining to distribution    */
  260. X+ /*    of the software without specific, written prior permission.    */
  261. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  262. X+ /*    about the suitability of this software for any purpose.  It is    */
  263. X+ /*    provided "as is" without express or implied warranty.        */
  264. X+ /*                                    */
  265. X+ /*    This code contains data and information that is proprietary    */
  266. X+ /*    to Casio Corporation.  You may be subject to legal action if    */
  267. X+ /*    this information is released without explicit permission from    */
  268. X+ /*    Casio.                                */
  269. X+ /************************************************************************/
  270. X+ 
  271. X+ /************************************************************************/
  272. X+ /*                                    */
  273. X+ /*    about.c        display a little information window        */
  274. X+ /*                                    */
  275. X+ /************************************************************************/
  276. X+ 
  277. X+ #include    <stdio.h>
  278. X+ #include    <sys/param.h>
  279. X+ #include    <sys/types.h>
  280. X+ #include    <xview/xview.h>
  281. X+ #include    <xview/panel.h>
  282. X+ #include    "boss_ui.h"
  283. X+ 
  284. X+ #include    "manifest.h"
  285. X+ 
  286. X+ PUBLIC    boss_base_objects    *boss_base;
  287. X+ 
  288. X+ PRIVATE    boss_about_objects    *dialog = NULL;
  289. X+ 
  290. X+ /************************************************************************/
  291. X+ EXPORT    Menu_item    popup_about_boss(item, op)
  292. X+ 
  293. X+ Menu_item    item;
  294. X+ Menu_generate    op;
  295. X+ 
  296. X+ {
  297. X+     if (op == MENU_NOTIFY) {
  298. X+        if (dialog == NULL) {
  299. X+           dialog = boss_about_objects_initialize(NULL, boss_base->base);
  300. X+           place_dialog(boss_base->base, dialog->about);
  301. X+           }
  302. X+        xv_set(dialog->about, XV_SHOW, TRUE, NULL);
  303. X+        }
  304. X+     return item;
  305. X+ }
  306. X*** boss_ui.c.orig    Fri Nov 30 08:44:12 1990
  307. X--- boss_ui.c    Fri Nov 30 08:15:35 1990
  308. X***************
  309. X*** 1,24 ****
  310. X- /************************************************************************/
  311. X- /*    Copyright 1990 by Chuck Musciano and Harris Corporation        */
  312. X- /*                                    */
  313. X- /*    Permission to use, copy, modify, and distribute this software    */
  314. X- /*    and its documentation for any purpose and without fee is    */
  315. X- /*    hereby granted, provided that the above copyright notice    */
  316. X- /*    appear in all copies and that both that copyright notice and    */
  317. X- /*    this permission notice appear in supporting documentation, and    */
  318. X- /*    that the name of Chuck Musciano and Harris Corporation not be    */
  319. X- /*    used in advertising or publicity pertaining to distribution    */
  320. X- /*    of the software without specific, written prior permission.    */
  321. X- /*    Chuck Musciano and Harris Corporation make no representations    */
  322. X- /*    about the suitability of this software for any purpose.  It is    */
  323. X- /*    provided "as is" without express or implied warranty.        */
  324. X- /*                                    */
  325. X- /*    This code contains data and information that is proprietary    */
  326. X- /*    to Casio Corporation.  You may be subject to legal action if    */
  327. X- /*    this information is released without explicit permission from    */
  328. X- /*    Casio.                                */
  329. X- /************************************************************************/
  330. X- 
  331. X  /*
  332. X   * boss_ui.c - User interface object initialization functions.
  333. X   * This file was generated by `gxv' from `boss.G'.
  334. X--- 1,3 ----
  335. X***************
  336. X*** 52,57 ****
  337. X--- 31,37 ----
  338. X      extern Menu_item    load_dialog();
  339. X      extern Menu_item    store_dialog();
  340. X      extern Menu_item    schedule_dialog();
  341. X+     extern Menu_item    popup_about_boss();
  342. X      Xv_opaque    obj;
  343. X      
  344. X      obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  345. X***************
  346. X*** 71,76 ****
  347. X--- 51,61 ----
  348. X              MENU_STRING, "Schedule Appointments...",
  349. X              MENU_GEN_PROC, schedule_dialog,
  350. X              NULL,
  351. X+         MENU_ITEM,
  352. X+             XV_KEY_DATA, INSTANCE, ip,
  353. X+             MENU_STRING, "About Boss...",
  354. X+             MENU_GEN_PROC, popup_about_boss,
  355. X+             NULL,
  356. X          MENU_DEFAULT, 2,
  357. X          MENU_GEN_PIN_WINDOW, (Xv_opaque) ip[0], "File",
  358. X          NULL);
  359. X***************
  360. X*** 207,213 ****
  361. X          XV_KEY_DATA, INSTANCE, ip,
  362. X          XV_WIDTH, 256,
  363. X          XV_HEIGHT, 88,
  364. X!         XV_LABEL, "Boss 1.0",
  365. X          FRAME_CLOSED, FALSE,
  366. X          FRAME_SHOW_FOOTER, FALSE,
  367. X          FRAME_SHOW_RESIZE_CORNER, FALSE,
  368. X--- 192,198 ----
  369. X          XV_KEY_DATA, INSTANCE, ip,
  370. X          XV_WIDTH, 256,
  371. X          XV_HEIGHT, 88,
  372. X!         XV_LABEL, "Boss 1.0a",
  373. X          FRAME_CLOSED, FALSE,
  374. X          FRAME_SHOW_FOOTER, FALSE,
  375. X          FRAME_SHOW_RESIZE_CORNER, FALSE,
  376. X***************
  377. X*** 1552,1557 ****
  378. X--- 1537,2362 ----
  379. X          XV_HEIGHT, 20,
  380. X          PANEL_LABEL_STRING, "Schedule",
  381. X          PANEL_NOTIFY_PROC, accept_schedule,
  382. X+         NULL);
  383. X+     return obj;
  384. X+ }
  385. X+ 
  386. X+ /*
  387. X+  * Initialize an instance of object `about'.
  388. X+  */
  389. X+ boss_about_objects *
  390. X+ boss_about_objects_initialize(ip, owner)
  391. X+     boss_about_objects    *ip;
  392. X+     Xv_opaque    owner;
  393. X+ {
  394. X+     if (!ip && !(ip = (boss_about_objects *) calloc(1, sizeof (boss_about_objects))))
  395. X+         return (boss_about_objects *) NULL;
  396. X+     if (!ip->about)
  397. X+         ip->about = boss_about_about_create(ip, owner);
  398. X+     if (!ip->about_controls)
  399. X+         ip->about_controls = boss_about_about_controls_create(ip, ip->about);
  400. X+     if (!ip->msg_1)
  401. X+         ip->msg_1 = boss_about_msg_1_create(ip, ip->about_controls);
  402. X+     if (!ip->msg_5)
  403. X+         ip->msg_5 = boss_about_msg_5_create(ip, ip->about_controls);
  404. X+     if (!ip->msg_6)
  405. X+         ip->msg_6 = boss_about_msg_6_create(ip, ip->about_controls);
  406. X+     if (!ip->msg_7)
  407. X+         ip->msg_7 = boss_about_msg_7_create(ip, ip->about_controls);
  408. X+     if (!ip->msg_8)
  409. X+         ip->msg_8 = boss_about_msg_8_create(ip, ip->about_controls);
  410. X+     if (!ip->msg_9)
  411. X+         ip->msg_9 = boss_about_msg_9_create(ip, ip->about_controls);
  412. X+     if (!ip->msg_11)
  413. X+         ip->msg_11 = boss_about_msg_11_create(ip, ip->about_controls);
  414. X+     if (!ip->msg_12)
  415. X+         ip->msg_12 = boss_about_msg_12_create(ip, ip->about_controls);
  416. X+     if (!ip->msg_13)
  417. X+         ip->msg_13 = boss_about_msg_13_create(ip, ip->about_controls);
  418. X+     if (!ip->msg_14)
  419. X+         ip->msg_14 = boss_about_msg_14_create(ip, ip->about_controls);
  420. X+     if (!ip->msg_16)
  421. X+         ip->msg_16 = boss_about_msg_16_create(ip, ip->about_controls);
  422. X+     if (!ip->msg_17)
  423. X+         ip->msg_17 = boss_about_msg_17_create(ip, ip->about_controls);
  424. X+     if (!ip->msg_18)
  425. X+         ip->msg_18 = boss_about_msg_18_create(ip, ip->about_controls);
  426. X+     if (!ip->msg_19)
  427. X+         ip->msg_19 = boss_about_msg_19_create(ip, ip->about_controls);
  428. X+     if (!ip->msg_20)
  429. X+         ip->msg_20 = boss_about_msg_20_create(ip, ip->about_controls);
  430. X+     if (!ip->message6)
  431. X+         ip->message6 = boss_about_message6_create(ip, ip->about_controls);
  432. X+     if (!ip->message7)
  433. X+         ip->message7 = boss_about_message7_create(ip, ip->about_controls);
  434. X+     if (!ip->send_mail)
  435. X+         ip->send_mail = boss_about_send_mail_create(ip, ip->about_controls);
  436. X+     return ip;
  437. X+ }
  438. X+ 
  439. X+ /*
  440. X+  * Create object `about' in the specified instance.
  441. X+ 
  442. X+  */
  443. X+ Xv_opaque
  444. X+ boss_about_about_create(ip, owner)
  445. X+     caddr_t        ip;
  446. X+     Xv_opaque    owner;
  447. X+ {
  448. X+     Xv_opaque    obj;
  449. X+     
  450. X+     obj = xv_create(owner, FRAME_CMD,
  451. X+         XV_KEY_DATA, INSTANCE, ip,
  452. X+         XV_WIDTH, 509,
  453. X+         XV_HEIGHT, 392,
  454. X+         XV_LABEL, "Boss: About Boss",
  455. X+         XV_SHOW, FALSE,
  456. X+         FRAME_SHOW_FOOTER, FALSE,
  457. X+         FRAME_SHOW_RESIZE_CORNER, FALSE,
  458. X+         FRAME_CMD_PUSHPIN_IN, TRUE,
  459. X+         NULL);
  460. X+     xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  461. X+     return obj;
  462. X+ }
  463. X+ 
  464. X+ /*
  465. X+  * Create object `about_controls' in the specified instance.
  466. X+ 
  467. X+  */
  468. X+ Xv_opaque
  469. X+ boss_about_about_controls_create(ip, owner)
  470. X+     caddr_t        ip;
  471. X+     Xv_opaque    owner;
  472. X+ {
  473. X+     Xv_opaque    obj;
  474. X+     
  475. X+     obj = xv_create(owner, PANEL,
  476. X+         XV_KEY_DATA, INSTANCE, ip,
  477. X+         XV_HELP_DATA, "boss:about_controls",
  478. X+         XV_X, 0,
  479. X+         XV_Y, 0,
  480. X+         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  481. X+         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  482. X+         WIN_BORDER, FALSE,
  483. X+         NULL);
  484. X+     return obj;
  485. X+ }
  486. X+ 
  487. X+ /*
  488. X+  * Create object `msg_1' in the specified instance.
  489. X+ 
  490. X+  */
  491. X+ Xv_opaque
  492. X+ boss_about_msg_1_create(ip, owner)
  493. X+     caddr_t        ip;
  494. X+     Xv_opaque    owner;
  495. X+ {
  496. X+     Xv_opaque    obj;
  497. X+     
  498. X+     obj = xv_create(owner, PANEL_MESSAGE,
  499. X+         XV_KEY_DATA, INSTANCE, ip,
  500. X+         XV_HELP_DATA, "boss:msg_1",
  501. X+         XV_X, 222,
  502. X+         XV_Y, 14,
  503. X+         XV_WIDTH, 65,
  504. X+         XV_HEIGHT, 13,
  505. X+         PANEL_LABEL_STRING, "Boss 1.0a",
  506. X+         PANEL_LABEL_BOLD, TRUE,
  507. X+         NULL);
  508. X+     return obj;
  509. X+ }
  510. X+ 
  511. X+ /*
  512. X+  * Create object `msg_5' in the specified instance.
  513. X+ 
  514. X+  */
  515. X+ Xv_opaque
  516. X+ boss_about_msg_5_create(ip, owner)
  517. X+     caddr_t        ip;
  518. X+     Xv_opaque    owner;
  519. X+ {
  520. X+     Xv_opaque    obj;
  521. X+     
  522. X+     obj = xv_create(owner, PANEL_MESSAGE,
  523. X+         XV_KEY_DATA, INSTANCE, ip,
  524. X+         XV_HELP_DATA, "boss:msg_5",
  525. X+         XV_X, 202,
  526. X+         XV_Y, 30,
  527. X+         XV_WIDTH, 104,
  528. X+         XV_HEIGHT, 13,
  529. X+         PANEL_LABEL_STRING, "Copyright 1990",
  530. X+         PANEL_LABEL_BOLD, TRUE,
  531. X+         NULL);
  532. X+     return obj;
  533. X+ }
  534. X+ 
  535. X+ /*
  536. X+  * Create object `msg_6' in the specified instance.
  537. X+ 
  538. X+  */
  539. X+ Xv_opaque
  540. X+ boss_about_msg_6_create(ip, owner)
  541. X+     caddr_t        ip;
  542. X+     Xv_opaque    owner;
  543. X+ {
  544. X+     Xv_opaque    obj;
  545. X+     
  546. X+     obj = xv_create(owner, PANEL_MESSAGE,
  547. X+         XV_KEY_DATA, INSTANCE, ip,
  548. X+         XV_HELP_DATA, "boss:msg_6",
  549. X+         XV_X, 117,
  550. X+         XV_Y, 46,
  551. X+         XV_WIDTH, 274,
  552. X+         XV_HEIGHT, 13,
  553. X+         PANEL_LABEL_STRING, "Chuck Musciano and Harris Corporation",
  554. X+         PANEL_LABEL_BOLD, TRUE,
  555. X+         NULL);
  556. X+     return obj;
  557. X+ }
  558. X+ 
  559. X+ /*
  560. X+  * Create object `msg_7' in the specified instance.
  561. X+ 
  562. X+  */
  563. X+ Xv_opaque
  564. X+ boss_about_msg_7_create(ip, owner)
  565. X+     caddr_t        ip;
  566. X+     Xv_opaque    owner;
  567. X+ {
  568. X+     Xv_opaque    obj;
  569. X+     
  570. X+     obj = xv_create(owner, PANEL_MESSAGE,
  571. X+         XV_KEY_DATA, INSTANCE, ip,
  572. X+         XV_HELP_DATA, "boss:msg_7",
  573. X+         XV_X, 185,
  574. X+         XV_Y, 62,
  575. X+         XV_WIDTH, 135,
  576. X+         XV_HEIGHT, 13,
  577. X+         PANEL_LABEL_STRING, "All Rights Reserved",
  578. X+         PANEL_LABEL_BOLD, TRUE,
  579. X+         NULL);
  580. X+     return obj;
  581. X+ }
  582. X+ 
  583. X+ /*
  584. X+  * Create object `msg_8' in the specified instance.
  585. X+ 
  586. X+  */
  587. X+ Xv_opaque
  588. X+ boss_about_msg_8_create(ip, owner)
  589. X+     caddr_t        ip;
  590. X+     Xv_opaque    owner;
  591. X+ {
  592. X+     Xv_opaque    obj;
  593. X+     
  594. X+     obj = xv_create(owner, PANEL_MESSAGE,
  595. X+         XV_KEY_DATA, INSTANCE, ip,
  596. X+         XV_HELP_DATA, "boss:msg_8",
  597. X+         XV_X, 14,
  598. X+         XV_Y, 94,
  599. X+         XV_WIDTH, 474,
  600. X+         XV_HEIGHT, 13,
  601. X+         PANEL_LABEL_STRING, "Boss was written using Sun's Devguide interface builder and the XView OPEN",
  602. X+         PANEL_LABEL_BOLD, FALSE,
  603. X+         NULL);
  604. X+     return obj;
  605. X+ }
  606. X+ 
  607. X+ /*
  608. X+  * Create object `msg_9' in the specified instance.
  609. X+ 
  610. X+  */
  611. X+ Xv_opaque
  612. X+ boss_about_msg_9_create(ip, owner)
  613. X+     caddr_t        ip;
  614. X+     Xv_opaque    owner;
  615. X+ {
  616. X+     Xv_opaque    obj;
  617. X+     
  618. X+     obj = xv_create(owner, PANEL_MESSAGE,
  619. X+         XV_KEY_DATA, INSTANCE, ip,
  620. X+         XV_HELP_DATA, "boss:msg_9",
  621. X+         XV_X, 14,
  622. X+         XV_Y, 110,
  623. X+         XV_WIDTH, 354,
  624. X+         XV_HEIGHT, 13,
  625. X+         PANEL_LABEL_STRING, "LOOK toolkit.  It was initially released in October of 1990.",
  626. X+         PANEL_LABEL_BOLD, FALSE,
  627. X+         NULL);
  628. X+     return obj;
  629. X+ }
  630. X+ 
  631. X+ /*
  632. X+  * Create object `msg_11' in the specified instance.
  633. X+ 
  634. X+  */
  635. X+ Xv_opaque
  636. X+ boss_about_msg_11_create(ip, owner)
  637. X+     caddr_t        ip;
  638. X+     Xv_opaque    owner;
  639. X+ {
  640. X+     Xv_opaque    obj;
  641. X+     
  642. X+     obj = xv_create(owner, PANEL_MESSAGE,
  643. X+         XV_KEY_DATA, INSTANCE, ip,
  644. X+         XV_HELP_DATA, "boss:msg_11",
  645. X+         XV_X, 14,
  646. X+         XV_Y, 142,
  647. X+         XV_WIDTH, 454,
  648. X+         XV_HEIGHT, 13,
  649. X+         PANEL_LABEL_STRING, "I welcome comments, criticism, suggestions, and bug reports.  Many of the",
  650. X+         PANEL_LABEL_BOLD, FALSE,
  651. X+         NULL);
  652. X+     return obj;
  653. X+ }
  654. X+ 
  655. X+ /*
  656. X+  * Create object `msg_12' in the specified instance.
  657. X+ 
  658. X+  */
  659. X+ Xv_opaque
  660. X+ boss_about_msg_12_create(ip, owner)
  661. X+     caddr_t        ip;
  662. X+     Xv_opaque    owner;
  663. X+ {
  664. X+     Xv_opaque    obj;
  665. X+     
  666. X+     obj = xv_create(owner, PANEL_MESSAGE,
  667. X+         XV_KEY_DATA, INSTANCE, ip,
  668. X+         XV_HELP_DATA, "boss:msg_12",
  669. X+         XV_X, 14,
  670. X+         XV_Y, 158,
  671. X+         XV_WIDTH, 457,
  672. X+         XV_HEIGHT, 13,
  673. X+         PANEL_LABEL_STRING, "features in this version of boss were added as the result of a user request. ",
  674. X+         PANEL_LABEL_BOLD, FALSE,
  675. X+         NULL);
  676. X+     return obj;
  677. X+ }
  678. X+ 
  679. X+ /*
  680. X+  * Create object `msg_13' in the specified instance.
  681. X+ 
  682. X+  */
  683. X+ Xv_opaque
  684. X+ boss_about_msg_13_create(ip, owner)
  685. X+     caddr_t        ip;
  686. X+     Xv_opaque    owner;
  687. X+ {
  688. X+     Xv_opaque    obj;
  689. X+     
  690. X+     obj = xv_create(owner, PANEL_MESSAGE,
  691. X+         XV_KEY_DATA, INSTANCE, ip,
  692. X+         XV_HELP_DATA, "boss:msg_13",
  693. X+         XV_X, 14,
  694. X+         XV_Y, 174,
  695. X+         XV_WIDTH, 467,
  696. X+         XV_HEIGHT, 13,
  697. X+         PANEL_LABEL_STRING, "User feedback is the single best driving force in the evolution of my tools.  I ",
  698. X+         PANEL_LABEL_BOLD, FALSE,
  699. X+         NULL);
  700. X+     return obj;
  701. X+ }
  702. X+ 
  703. X+ /*
  704. X+  * Create object `msg_14' in the specified instance.
  705. X+ 
  706. X+  */
  707. X+ Xv_opaque
  708. X+ boss_about_msg_14_create(ip, owner)
  709. X+     caddr_t        ip;
  710. X+     Xv_opaque    owner;
  711. X+ {
  712. X+     Xv_opaque    obj;
  713. X+     
  714. X+     obj = xv_create(owner, PANEL_MESSAGE,
  715. X+         XV_KEY_DATA, INSTANCE, ip,
  716. X+         XV_HELP_DATA, "boss:msg_14",
  717. X+         XV_X, 14,
  718. X+         XV_Y, 190,
  719. X+         XV_WIDTH, 205,
  720. X+         XV_HEIGHT, 13,
  721. X+         PANEL_LABEL_STRING, "look forward to hearing from you!",
  722. X+         PANEL_LABEL_BOLD, FALSE,
  723. X+         NULL);
  724. X+     return obj;
  725. X+ }
  726. X+ 
  727. X+ /*
  728. X+  * Create object `msg_16' in the specified instance.
  729. X+ 
  730. X+  */
  731. X+ Xv_opaque
  732. X+ boss_about_msg_16_create(ip, owner)
  733. X+     caddr_t        ip;
  734. X+     Xv_opaque    owner;
  735. X+ {
  736. X+     Xv_opaque    obj;
  737. X+     
  738. X+     obj = xv_create(owner, PANEL_MESSAGE,
  739. X+         XV_KEY_DATA, INSTANCE, ip,
  740. X+         XV_HELP_DATA, "boss:msg_16",
  741. X+         XV_X, 14,
  742. X+         XV_Y, 222,
  743. X+         XV_WIDTH, 460,
  744. X+         XV_HEIGHT, 13,
  745. X+         PANEL_LABEL_STRING, "Boss has been placed in the public domain, but the copyright on the source",
  746. X+         PANEL_LABEL_BOLD, FALSE,
  747. X+         NULL);
  748. X+     return obj;
  749. X+ }
  750. X+ 
  751. X+ /*
  752. X+  * Create object `msg_17' in the specified instance.
  753. X+ 
  754. X+  */
  755. X+ Xv_opaque
  756. X+ boss_about_msg_17_create(ip, owner)
  757. X+     caddr_t        ip;
  758. X+     Xv_opaque    owner;
  759. X+ {
  760. X+     Xv_opaque    obj;
  761. X+     
  762. X+     obj = xv_create(owner, PANEL_MESSAGE,
  763. X+         XV_KEY_DATA, INSTANCE, ip,
  764. X+         XV_HELP_DATA, "boss:msg_17",
  765. X+         XV_X, 14,
  766. X+         XV_Y, 238,
  767. X+         XV_WIDTH, 472,
  768. X+         XV_HEIGHT, 13,
  769. X+         PANEL_LABEL_STRING, "code is retained by myself and Harris Corporation, my employer.  This means",
  770. X+         PANEL_LABEL_BOLD, FALSE,
  771. X+         NULL);
  772. X+     return obj;
  773. X+ }
  774. X+ 
  775. X+ /*
  776. X+  * Create object `msg_18' in the specified instance.
  777. X+ 
  778. X+  */
  779. X+ Xv_opaque
  780. X+ boss_about_msg_18_create(ip, owner)
  781. X+     caddr_t        ip;
  782. X+     Xv_opaque    owner;
  783. X+ {
  784. X+     Xv_opaque    obj;
  785. X+     
  786. X+     obj = xv_create(owner, PANEL_MESSAGE,
  787. X+         XV_KEY_DATA, INSTANCE, ip,
  788. X+         XV_HELP_DATA, "boss:msg_18",
  789. X+         XV_X, 14,
  790. X+         XV_Y, 254,
  791. X+         XV_WIDTH, 460,
  792. X+         XV_HEIGHT, 13,
  793. X+         PANEL_LABEL_STRING, "that you can give the source code to anyone but you cannot sell any part of",
  794. X+         PANEL_LABEL_BOLD, FALSE,
  795. X+         NULL);
  796. X+     return obj;
  797. X+ }
  798. X+ 
  799. X+ /*
  800. X+  * Create object `msg_19' in the specified instance.
  801. X+ 
  802. X+  */
  803. X+ Xv_opaque
  804. X+ boss_about_msg_19_create(ip, owner)
  805. X+     caddr_t        ip;
  806. X+     Xv_opaque    owner;
  807. X+ {
  808. X+     Xv_opaque    obj;
  809. X+     
  810. X+     obj = xv_create(owner, PANEL_MESSAGE,
  811. X+         XV_KEY_DATA, INSTANCE, ip,
  812. X+         XV_HELP_DATA, "boss:msg_19",
  813. X+         XV_X, 14,
  814. X+         XV_Y, 270,
  815. X+         XV_WIDTH, 455,
  816. X+         XV_HEIGHT, 13,
  817. X+         PANEL_LABEL_STRING, "the source code, nor can you incorporate any part of the source code into a",
  818. X+         PANEL_LABEL_BOLD, FALSE,
  819. X+         NULL);
  820. X+     return obj;
  821. X+ }
  822. X+ 
  823. X+ /*
  824. X+  * Create object `msg_20' in the specified instance.
  825. X+ 
  826. X+  */
  827. X+ Xv_opaque
  828. X+ boss_about_msg_20_create(ip, owner)
  829. X+     caddr_t        ip;
  830. X+     Xv_opaque    owner;
  831. X+ {
  832. X+     Xv_opaque    obj;
  833. X+     
  834. X+     obj = xv_create(owner, PANEL_MESSAGE,
  835. X+         XV_KEY_DATA, INSTANCE, ip,
  836. X+         XV_HELP_DATA, "boss:msg_20",
  837. X+         XV_X, 14,
  838. X+         XV_Y, 286,
  839. X+         XV_WIDTH, 476,
  840. X+         XV_HEIGHT, 13,
  841. X+         PANEL_LABEL_STRING, "product which is subsequently sold.  In addition, certain portions of this code ",
  842. X+         PANEL_LABEL_BOLD, FALSE,
  843. X+         NULL);
  844. X+     return obj;
  845. X+ }
  846. X+ 
  847. X+ /*
  848. X+  * Create object `message6' in the specified instance.
  849. X+ 
  850. X+  */
  851. X+ Xv_opaque
  852. X+ boss_about_message6_create(ip, owner)
  853. X+     caddr_t        ip;
  854. X+     Xv_opaque    owner;
  855. X+ {
  856. X+     Xv_opaque    obj;
  857. X+     
  858. X+     obj = xv_create(owner, PANEL_MESSAGE,
  859. X+         XV_KEY_DATA, INSTANCE, ip,
  860. X+         XV_X, 14,
  861. X+         XV_Y, 302,
  862. X+         XV_WIDTH, 442,
  863. X+         XV_HEIGHT, 13,
  864. X+         PANEL_LABEL_STRING, "contain information proprietary to Casio Corporation and cannot be sold",
  865. X+         PANEL_LABEL_BOLD, FALSE,
  866. X+         NULL);
  867. X+     return obj;
  868. X+ }
  869. X+ 
  870. X+ /*
  871. X+  * Create object `message7' in the specified instance.
  872. X+ 
  873. X+  */
  874. X+ Xv_opaque
  875. X+ boss_about_message7_create(ip, owner)
  876. X+     caddr_t        ip;
  877. X+     Xv_opaque    owner;
  878. X+ {
  879. X+     Xv_opaque    obj;
  880. X+     
  881. X+     obj = xv_create(owner, PANEL_MESSAGE,
  882. X+         XV_KEY_DATA, INSTANCE, ip,
  883. X+         XV_X, 14,
  884. X+         XV_Y, 318,
  885. X+         XV_WIDTH, 317,
  886. X+         XV_HEIGHT, 13,
  887. X+         PANEL_LABEL_STRING, "without explicit permission from Casio Corporation.",
  888. X+         PANEL_LABEL_BOLD, FALSE,
  889. X+         NULL);
  890. X+     return obj;
  891. X+ }
  892. X+ 
  893. X+ /*
  894. X+  * Create object `send_mail' in the specified instance.
  895. X+ 
  896. X+  */
  897. X+ Xv_opaque
  898. X+ boss_about_send_mail_create(ip, owner)
  899. X+     caddr_t        ip;
  900. X+     Xv_opaque    owner;
  901. X+ {
  902. X+     extern void        popup_send_mail();
  903. X+     Xv_opaque    obj;
  904. X+     
  905. X+     obj = xv_create(owner, PANEL_BUTTON,
  906. X+         XV_KEY_DATA, INSTANCE, ip,
  907. X+         XV_HELP_DATA, "boss:send_mail",
  908. X+         XV_X, 215,
  909. X+         XV_Y, 352,
  910. X+         XV_WIDTH, 78,
  911. X+         XV_HEIGHT, 20,
  912. X+         PANEL_LABEL_STRING, "Send Mail",
  913. X+         PANEL_NOTIFY_PROC, popup_send_mail,
  914. X+         NULL);
  915. X+     return obj;
  916. X+ }
  917. X+ 
  918. X+ /*
  919. X+  * Initialize an instance of object `mail'.
  920. X+  */
  921. X+ boss_mail_objects *
  922. X+ boss_mail_objects_initialize(ip, owner)
  923. X+     boss_mail_objects    *ip;
  924. X+     Xv_opaque    owner;
  925. X+ {
  926. X+     if (!ip && !(ip = (boss_mail_objects *) calloc(1, sizeof (boss_mail_objects))))
  927. X+         return (boss_mail_objects *) NULL;
  928. X+     if (!ip->mail)
  929. X+         ip->mail = boss_mail_mail_create(ip, owner);
  930. X+     if (!ip->mail_controls)
  931. X+         ip->mail_controls = boss_mail_mail_controls_create(ip, ip->mail);
  932. X+     if (!ip->msg_21)
  933. X+         ip->msg_21 = boss_mail_msg_21_create(ip, ip->mail_controls);
  934. X+     if (!ip->msg_22)
  935. X+         ip->msg_22 = boss_mail_msg_22_create(ip, ip->mail_controls);
  936. X+     if (!ip->address)
  937. X+         ip->address = boss_mail_address_create(ip, ip->mail_controls);
  938. X+     if (!ip->other_address)
  939. X+         ip->other_address = boss_mail_other_address_create(ip, ip->mail_controls);
  940. X+     if (!ip->message)
  941. X+         ip->message = boss_mail_message_create(ip, ip->mail);
  942. X+     if (!ip->mail_controls1)
  943. X+         ip->mail_controls1 = boss_mail_mail_controls1_create(ip, ip->mail);
  944. X+     if (!ip->accept_send)
  945. X+         ip->accept_send = boss_mail_accept_send_create(ip, ip->mail_controls1);
  946. X+     if (!ip->cancel_mail)
  947. X+         ip->cancel_mail = boss_mail_cancel_mail_create(ip, ip->mail_controls1);
  948. X+     return ip;
  949. X+ }
  950. X+ 
  951. X+ /*
  952. X+  * Create object `mail' in the specified instance.
  953. X+ 
  954. X+  */
  955. X+ Xv_opaque
  956. X+ boss_mail_mail_create(ip, owner)
  957. X+     caddr_t        ip;
  958. X+     Xv_opaque    owner;
  959. X+ {
  960. X+     extern void    done_mail();
  961. X+     Xv_opaque    obj;
  962. X+     
  963. X+     obj = xv_create(owner, FRAME_CMD,
  964. X+         XV_KEY_DATA, INSTANCE, ip,
  965. X+         XV_WIDTH, 506,
  966. X+         XV_HEIGHT, 338,
  967. X+         XV_LABEL, "Boss: Send mail",
  968. X+         XV_SHOW, FALSE,
  969. X+         FRAME_SHOW_FOOTER, FALSE,
  970. X+         FRAME_SHOW_RESIZE_CORNER, FALSE,
  971. X+         FRAME_CMD_PUSHPIN_IN, FALSE,
  972. X+         FRAME_DONE_PROC, done_mail,
  973. X+         NULL);
  974. X+     xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  975. X+     return obj;
  976. X+ }
  977. X+ 
  978. X+ /*
  979. X+  * Create object `mail_controls' in the specified instance.
  980. X+ 
  981. X+  */
  982. X+ Xv_opaque
  983. X+ boss_mail_mail_controls_create(ip, owner)
  984. X+     caddr_t        ip;
  985. X+     Xv_opaque    owner;
  986. X+ {
  987. X+     Xv_opaque    obj;
  988. X+     
  989. X+     obj = xv_create(owner, PANEL,
  990. X+         XV_KEY_DATA, INSTANCE, ip,
  991. X+         XV_HELP_DATA, "boss:mail_controls",
  992. X+         XV_X, 0,
  993. X+         XV_Y, 0,
  994. X+         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  995. X+         XV_HEIGHT, 92,
  996. X+         WIN_BORDER, FALSE,
  997. X+         NULL);
  998. X+     return obj;
  999. X+ }
  1000. X+ 
  1001. X+ /*
  1002. X+  * Create object `msg_21' in the specified instance.
  1003. X+ 
  1004. X+  */
  1005. X+ Xv_opaque
  1006. X+ boss_mail_msg_21_create(ip, owner)
  1007. X+     caddr_t        ip;
  1008. X+     Xv_opaque    owner;
  1009. X+ {
  1010. X+     Xv_opaque    obj;
  1011. X+     
  1012. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1013. X+         XV_KEY_DATA, INSTANCE, ip,
  1014. X+         XV_HELP_DATA, "boss:msg_21",
  1015. X+         XV_X, 14,
  1016. X+         XV_Y, 14,
  1017. X+         XV_WIDTH, 478,
  1018. X+         XV_HEIGHT, 13,
  1019. X+         PANEL_LABEL_STRING, "Your feedback is appreciated.  To ensure that your message reaches me, check",
  1020. X+         PANEL_LABEL_BOLD, FALSE,
  1021. X+         NULL);
  1022. X+     return obj;
  1023. X+ }
  1024. X+ 
  1025. X+ /*
  1026. X+  * Create object `msg_22' in the specified instance.
  1027. X+ 
  1028. X+  */
  1029. X+ Xv_opaque
  1030. X+ boss_mail_msg_22_create(ip, owner)
  1031. X+     caddr_t        ip;
  1032. X+     Xv_opaque    owner;
  1033. X+ {
  1034. X+     Xv_opaque    obj;
  1035. X+     
  1036. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1037. X+         XV_KEY_DATA, INSTANCE, ip,
  1038. X+         XV_HELP_DATA, "boss:msg_22",
  1039. X+         XV_X, 14,
  1040. X+         XV_Y, 30,
  1041. X+         XV_WIDTH, 395,
  1042. X+         XV_HEIGHT, 13,
  1043. X+         PANEL_LABEL_STRING, "that the \"To\" address is valid for your site before clicking \"Send\".",
  1044. X+         PANEL_LABEL_BOLD, FALSE,
  1045. X+         NULL);
  1046. X+     return obj;
  1047. X+ }
  1048. X+ 
  1049. X+ /*
  1050. X+  * Create object `address' in the specified instance.
  1051. X+ 
  1052. X+  */
  1053. X+ Xv_opaque
  1054. X+ boss_mail_address_create(ip, owner)
  1055. X+     caddr_t        ip;
  1056. X+     Xv_opaque    owner;
  1057. X+ {
  1058. X+     extern int        handle_address();
  1059. X+     Xv_opaque    obj;
  1060. X+     
  1061. X+     obj = xv_create(owner, PANEL_CHOICE, PANEL_DISPLAY_LEVEL, PANEL_CURRENT,
  1062. X+         XV_KEY_DATA, INSTANCE, ip,
  1063. X+         XV_HELP_DATA, "boss:address",
  1064. X+         XV_X, 14,
  1065. X+         XV_Y, 64,
  1066. X+         XV_WIDTH, 278,
  1067. X+         XV_HEIGHT, 23,
  1068. X+         PANEL_VALUE_X, 43,
  1069. X+         PANEL_VALUE_Y, 64,
  1070. X+         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1071. X+         PANEL_CHOICE_NROWS, 1,
  1072. X+         PANEL_LABEL_STRING, "To:",
  1073. X+         PANEL_NOTIFY_PROC, handle_address,
  1074. X+         PANEL_CHOICE_STRINGS,
  1075. X+             "chuck@trantor.harris-atd.com",
  1076. X+             "uunet!trantor.harris-atd.com!chuck",
  1077. X+             "Other:",
  1078. X+             0,
  1079. X+         NULL);
  1080. X+     return obj;
  1081. X+ }
  1082. X+ 
  1083. X+ /*
  1084. X+  * Create object `other_address' in the specified instance.
  1085. X+ 
  1086. X+  */
  1087. X+ Xv_opaque
  1088. X+ boss_mail_other_address_create(ip, owner)
  1089. X+     caddr_t        ip;
  1090. X+     Xv_opaque    owner;
  1091. X+ {
  1092. X+     Xv_opaque    obj;
  1093. X+     
  1094. X+     obj = xv_create(owner, PANEL_TEXT,
  1095. X+         XV_KEY_DATA, INSTANCE, ip,
  1096. X+         XV_HELP_DATA, "boss:other_address",
  1097. X+         XV_X, 105,
  1098. X+         XV_Y, 69,
  1099. X+         XV_WIDTH, 385,
  1100. X+         XV_HEIGHT, 15,
  1101. X+         PANEL_VALUE_X, 114,
  1102. X+         PANEL_VALUE_Y, 69,
  1103. X+         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1104. X+         PANEL_VALUE_DISPLAY_LENGTH, 47,
  1105. X+         PANEL_VALUE_STORED_LENGTH, 256,
  1106. X+         PANEL_READ_ONLY, FALSE,
  1107. X+         NULL);
  1108. X+     return obj;
  1109. X+ }
  1110. X+ 
  1111. X+ /*
  1112. X+  * Create object `message' in the specified instance.
  1113. X+ 
  1114. X+  */
  1115. X+ Xv_opaque
  1116. X+ boss_mail_message_create(ip, owner)
  1117. X+     caddr_t        ip;
  1118. X+     Xv_opaque    owner;
  1119. X+ {
  1120. X+     Xv_opaque    obj;
  1121. X+     
  1122. X+     obj = xv_create(owner, TEXTSW,
  1123. X+         XV_KEY_DATA, INSTANCE, ip,
  1124. X+         XV_X, 0,
  1125. X+         XV_Y, 92,
  1126. X+         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1127. X+         XV_HEIGHT, 188,
  1128. X+         OPENWIN_SHOW_BORDERS, TRUE,
  1129. X+         NULL);
  1130. X+     return obj;
  1131. X+ }
  1132. X+ 
  1133. X+ /*
  1134. X+  * Create object `mail_controls1' in the specified instance.
  1135. X+ 
  1136. X+  */
  1137. X+ Xv_opaque
  1138. X+ boss_mail_mail_controls1_create(ip, owner)
  1139. X+     caddr_t        ip;
  1140. X+     Xv_opaque    owner;
  1141. X+ {
  1142. X+     Xv_opaque    obj;
  1143. X+     
  1144. X+     obj = xv_create(owner, PANEL,
  1145. X+         XV_KEY_DATA, INSTANCE, ip,
  1146. X+         XV_HELP_DATA, "boss:mail_controls1",
  1147. X+         XV_X, 0,
  1148. X+         XV_Y, 280,
  1149. X+         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1150. X+         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  1151. X+         WIN_BORDER, FALSE,
  1152. X+         NULL);
  1153. X+     return obj;
  1154. X+ }
  1155. X+ 
  1156. X+ /*
  1157. X+  * Create object `accept_send' in the specified instance.
  1158. X+ 
  1159. X+  */
  1160. X+ Xv_opaque
  1161. X+ boss_mail_accept_send_create(ip, owner)
  1162. X+     caddr_t        ip;
  1163. X+     Xv_opaque    owner;
  1164. X+ {
  1165. X+     extern void        send_mail();
  1166. X+     Xv_opaque    obj;
  1167. X+     
  1168. X+     obj = xv_create(owner, PANEL_BUTTON,
  1169. X+         XV_KEY_DATA, INSTANCE, ip,
  1170. X+         XV_HELP_DATA, "boss:accept_send",
  1171. X+         XV_X, 193,
  1172. X+         XV_Y, 18,
  1173. X+         XV_WIDTH, 48,
  1174. X+         XV_HEIGHT, 20,
  1175. X+         PANEL_LABEL_STRING, "Send",
  1176. X+         PANEL_NOTIFY_PROC, send_mail,
  1177. X+         NULL);
  1178. X+     return obj;
  1179. X+ }
  1180. X+ 
  1181. X+ /*
  1182. X+  * Create object `cancel_mail' in the specified instance.
  1183. X+ 
  1184. X+  */
  1185. X+ Xv_opaque
  1186. X+ boss_mail_cancel_mail_create(ip, owner)
  1187. X+     caddr_t        ip;
  1188. X+     Xv_opaque    owner;
  1189. X+ {
  1190. X+     extern void        cancel_mail();
  1191. X+     Xv_opaque    obj;
  1192. X+     
  1193. X+     obj = xv_create(owner, PANEL_BUTTON,
  1194. X+         XV_KEY_DATA, INSTANCE, ip,
  1195. X+         XV_HELP_DATA, "boss:cancel_mail",
  1196. X+         XV_X, 253,
  1197. X+         XV_Y, 18,
  1198. X+         XV_WIDTH, 59,
  1199. X+         XV_HEIGHT, 20,
  1200. X+         PANEL_LABEL_STRING, "Cancel",
  1201. X+         PANEL_NOTIFY_PROC, cancel_mail,
  1202. X          NULL);
  1203. X      return obj;
  1204. X  }
  1205. X*** boss_ui.h.orig    Fri Nov 30 08:44:16 1990
  1206. X--- boss_ui.h    Fri Nov 30 08:15:29 1990
  1207. X***************
  1208. X*** 1,24 ****
  1209. X- /************************************************************************/
  1210. X- /*    Copyright 1990 by Chuck Musciano and Harris Corporation        */
  1211. X- /*                                    */
  1212. X- /*    Permission to use, copy, modify, and distribute this software    */
  1213. X- /*    and its documentation for any purpose and without fee is    */
  1214. X- /*    hereby granted, provided that the above copyright notice    */
  1215. X- /*    appear in all copies and that both that copyright notice and    */
  1216. X- /*    this permission notice appear in supporting documentation, and    */
  1217. X- /*    that the name of Chuck Musciano and Harris Corporation not be    */
  1218. X- /*    used in advertising or publicity pertaining to distribution    */
  1219. X- /*    of the software without specific, written prior permission.    */
  1220. X- /*    Chuck Musciano and Harris Corporation make no representations    */
  1221. X- /*    about the suitability of this software for any purpose.  It is    */
  1222. X- /*    provided "as is" without express or implied warranty.        */
  1223. X- /*                                    */
  1224. X- /*    This code contains data and information that is proprietary    */
  1225. X- /*    to Casio Corporation.  You may be subject to legal action if    */
  1226. X- /*    this information is released without explicit permission from    */
  1227. X- /*    Casio.                                */
  1228. X- /************************************************************************/
  1229. X- 
  1230. X  #ifndef    boss_HEADER
  1231. X  #define    boss_HEADER
  1232. X  
  1233. X--- 1,3 ----
  1234. X***************
  1235. X*** 159,162 ****
  1236. X--- 138,213 ----
  1237. X  extern Xv_opaque    boss_schedule_dialog_schedule_format_create();
  1238. X  extern Xv_opaque    boss_schedule_dialog_appt_file_create();
  1239. X  extern Xv_opaque    boss_schedule_dialog_schedule_accept_create();
  1240. X+ 
  1241. X+ typedef struct {
  1242. X+     Xv_opaque    about;
  1243. X+     Xv_opaque    about_controls;
  1244. X+     Xv_opaque    msg_1;
  1245. X+     Xv_opaque    msg_5;
  1246. X+     Xv_opaque    msg_6;
  1247. X+     Xv_opaque    msg_7;
  1248. X+     Xv_opaque    msg_8;
  1249. X+     Xv_opaque    msg_9;
  1250. X+     Xv_opaque    msg_11;
  1251. X+     Xv_opaque    msg_12;
  1252. X+     Xv_opaque    msg_13;
  1253. X+     Xv_opaque    msg_14;
  1254. X+     Xv_opaque    msg_16;
  1255. X+     Xv_opaque    msg_17;
  1256. X+     Xv_opaque    msg_18;
  1257. X+     Xv_opaque    msg_19;
  1258. X+     Xv_opaque    msg_20;
  1259. X+     Xv_opaque    message6;
  1260. X+     Xv_opaque    message7;
  1261. X+     Xv_opaque    send_mail;
  1262. X+ } boss_about_objects;
  1263. X+ 
  1264. X+ extern boss_about_objects    *boss_about_objects_initialize();
  1265. X+ 
  1266. X+ extern Xv_opaque    boss_about_about_create();
  1267. X+ extern Xv_opaque    boss_about_about_controls_create();
  1268. X+ extern Xv_opaque    boss_about_msg_1_create();
  1269. X+ extern Xv_opaque    boss_about_msg_5_create();
  1270. X+ extern Xv_opaque    boss_about_msg_6_create();
  1271. X+ extern Xv_opaque    boss_about_msg_7_create();
  1272. X+ extern Xv_opaque    boss_about_msg_8_create();
  1273. X+ extern Xv_opaque    boss_about_msg_9_create();
  1274. X+ extern Xv_opaque    boss_about_msg_11_create();
  1275. X+ extern Xv_opaque    boss_about_msg_12_create();
  1276. X+ extern Xv_opaque    boss_about_msg_13_create();
  1277. X+ extern Xv_opaque    boss_about_msg_14_create();
  1278. X+ extern Xv_opaque    boss_about_msg_16_create();
  1279. X+ extern Xv_opaque    boss_about_msg_17_create();
  1280. X+ extern Xv_opaque    boss_about_msg_18_create();
  1281. X+ extern Xv_opaque    boss_about_msg_19_create();
  1282. X+ extern Xv_opaque    boss_about_msg_20_create();
  1283. X+ extern Xv_opaque    boss_about_message6_create();
  1284. X+ extern Xv_opaque    boss_about_message7_create();
  1285. X+ extern Xv_opaque    boss_about_send_mail_create();
  1286. X+ 
  1287. X+ typedef struct {
  1288. X+     Xv_opaque    mail;
  1289. X+     Xv_opaque    mail_controls;
  1290. X+     Xv_opaque    msg_21;
  1291. X+     Xv_opaque    msg_22;
  1292. X+     Xv_opaque    address;
  1293. X+     Xv_opaque    other_address;
  1294. X+     Xv_opaque    message;
  1295. X+     Xv_opaque    mail_controls1;
  1296. X+     Xv_opaque    accept_send;
  1297. X+     Xv_opaque    cancel_mail;
  1298. X+ } boss_mail_objects;
  1299. X+ 
  1300. X+ extern boss_mail_objects    *boss_mail_objects_initialize();
  1301. X+ 
  1302. X+ extern Xv_opaque    boss_mail_mail_create();
  1303. X+ extern Xv_opaque    boss_mail_mail_controls_create();
  1304. X+ extern Xv_opaque    boss_mail_msg_21_create();
  1305. X+ extern Xv_opaque    boss_mail_msg_22_create();
  1306. X+ extern Xv_opaque    boss_mail_address_create();
  1307. X+ extern Xv_opaque    boss_mail_other_address_create();
  1308. X+ extern Xv_opaque    boss_mail_message_create();
  1309. X+ extern Xv_opaque    boss_mail_mail_controls1_create();
  1310. X+ extern Xv_opaque    boss_mail_accept_send_create();
  1311. X+ extern Xv_opaque    boss_mail_cancel_mail_create();
  1312. X  #endif
  1313. X*** busy.c.orig    Fri Nov 30 08:44:17 1990
  1314. X--- busy.c    Tue Oct 23 08:03:24 1990
  1315. X***************
  1316. X*** 0 ****
  1317. X--- 1,65 ----
  1318. X+ /************************************************************************/
  1319. X+ /*    Copyright 1988-1990 by Chuck Musciano and Harris Corporation    */
  1320. X+ /*                                    */
  1321. X+ /*    Permission to use, copy, modify, and distribute this software    */
  1322. X+ /*    and its documentation for any purpose and without fee is    */
  1323. X+ /*    hereby granted, provided that the above copyright notice    */
  1324. X+ /*    appear in all copies and that both that copyright notice and    */
  1325. X+ /*    this permission notice appear in supporting documentation, and    */
  1326. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  1327. X+ /*    used in advertising or publicity pertaining to distribution    */
  1328. X+ /*    of the software without specific, written prior permission.    */
  1329. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  1330. X+ /*    about the suitability of this software for any purpose.  It is    */
  1331. X+ /*    provided "as is" without express or implied warranty.  This     */
  1332. X+ /*    software may not be sold without the prior explicit permission    */
  1333. X+ /*    of Harris Corporation.                        */
  1334. X+ /************************************************************************/
  1335. X+ 
  1336. X+ /************************************************************************/
  1337. X+ /*                                    */
  1338. X+ /*    busy.c    turn frame busy attribute on and off            */
  1339. X+ /*                                    */
  1340. X+ /************************************************************************/
  1341. X+ 
  1342. X+ #include    <stdio.h>
  1343. X+ #include    <xview/xview.h>
  1344. X+ #include    <xview/panel.h>
  1345. X+ 
  1346. X+ #include    "manifest.h"
  1347. X+ 
  1348. X+ /************************************************************************/
  1349. X+ PRIVATE    set_busy(base, busy, skip)
  1350. X+ 
  1351. X+ Frame    base;
  1352. X+ int    busy;
  1353. X+ Frame    skip;
  1354. X+ 
  1355. X+ {    Frame    subframe;
  1356. X+     int    i;
  1357. X+ 
  1358. X+     for (i = 1; subframe = (Frame) xv_get(base, FRAME_NTH_SUBFRAME, i); i++)
  1359. X+        if (subframe != skip)
  1360. X+           if (xv_get(subframe, XV_SHOW))
  1361. X+              xv_set(subframe, FRAME_BUSY, busy, NULL);
  1362. X+     xv_set(base, FRAME_BUSY, busy, NULL);
  1363. X+ }
  1364. X+ 
  1365. X+ /************************************************************************/
  1366. X+ EXPORT    lets_get_busy(base, busy, skip)
  1367. X+ 
  1368. X+ Frame    base;
  1369. X+ int    busy;
  1370. X+ Frame    skip;
  1371. X+ 
  1372. X+ {    static    int    depth = 0;
  1373. X+ 
  1374. X+     if (busy) {
  1375. X+        if (depth == 0)
  1376. X+           set_busy(base, TRUE, skip);
  1377. X+        depth++;
  1378. X+        }
  1379. X+     else if (depth > 0)
  1380. X+        if (--depth == 0)
  1381. X+           set_busy(base, FALSE, NULL);
  1382. X+ }
  1383. X*** do_load.c.orig    Fri Nov 30 08:44:24 1990
  1384. X--- do_load.c    Wed Oct 24 08:18:56 1990
  1385. X***************
  1386. X*** 108,114 ****
  1387. X      FILE    *f;
  1388. X      object    *o, *obj;
  1389. X  
  1390. X!     lets_get_busy(TRUE, NULL);
  1391. X      xv_set(item, PANEL_NOTIFY_STATUS, XV_ERROR, 0);
  1392. X  
  1393. X      if (((int) xv_get(dialog->source, PANEL_VALUE)) == FROM_BOSS) {
  1394. X--- 108,114 ----
  1395. X      FILE    *f;
  1396. X      object    *o, *obj;
  1397. X  
  1398. X!     lets_get_busy(boss_base->base, TRUE, NULL);
  1399. X      xv_set(item, PANEL_NOTIFY_STATUS, XV_ERROR, 0);
  1400. X  
  1401. X      if (((int) xv_get(dialog->source, PANEL_VALUE)) == FROM_BOSS) {
  1402. X***************
  1403. X*** 166,170 ****
  1404. X         else
  1405. X            error("Could not read from %s", p);
  1406. X         }
  1407. X!     lets_get_busy(FALSE, NULL);
  1408. X  }
  1409. X--- 166,170 ----
  1410. X         else
  1411. X            error("Could not read from %s", p);
  1412. X         }
  1413. X!     lets_get_busy(boss_base->base, FALSE, NULL);
  1414. X  }
  1415. X*** do_schedule.c.orig    Fri Nov 30 08:44:26 1990
  1416. X--- do_schedule.c    Wed Oct 24 08:18:49 1990
  1417. X***************
  1418. X*** 223,233 ****
  1419. X  
  1420. X  {    int    result, format;
  1421. X  
  1422. X!     lets_get_busy(TRUE, NULL);
  1423. X      if ((format = (int) xv_get(dialog->schedule_format, PANEL_VALUE)) == CALENTOOL)
  1424. X         result = convert_to_calentool();
  1425. X      else if (format == CALENDAR_MANAGER)
  1426. X         result = convert_to_calendar_manager();
  1427. X      xv_set(item, PANEL_NOTIFY_STATUS, result, NULL);
  1428. X!     lets_get_busy(FALSE, NULL);
  1429. X  }
  1430. X--- 223,233 ----
  1431. X  
  1432. X  {    int    result, format;
  1433. X  
  1434. X!     lets_get_busy(boss_base->base, TRUE, NULL);
  1435. X      if ((format = (int) xv_get(dialog->schedule_format, PANEL_VALUE)) == CALENTOOL)
  1436. X         result = convert_to_calentool();
  1437. X      else if (format == CALENDAR_MANAGER)
  1438. X         result = convert_to_calendar_manager();
  1439. X      xv_set(item, PANEL_NOTIFY_STATUS, result, NULL);
  1440. X!     lets_get_busy(boss_base->base, FALSE, NULL);
  1441. X  }
  1442. X*** do_store.c.orig    Fri Nov 30 08:44:27 1990
  1443. X--- do_store.c    Fri Nov  2 10:04:49 1990
  1444. X***************
  1445. X*** 30,38 ****
  1446. X--- 30,40 ----
  1447. X  #include    <sys/types.h>
  1448. X  #include    <xview/xview.h>
  1449. X  #include    <xview/panel.h>
  1450. X+ #include    <xview/notice.h>
  1451. X  #include    "boss_ui.h"
  1452. X  
  1453. X  #include    "manifest.h"
  1454. X+ #include    "packet.h"
  1455. X  #include    "object.h"
  1456. X  #include    "globals.h"
  1457. X  
  1458. X***************
  1459. X*** 109,120 ****
  1460. X      object    *obj;
  1461. X      char    *path;
  1462. X  
  1463. X!     lets_get_busy(TRUE, NULL);
  1464. X      xv_set(item, PANEL_NOTIFY_STATUS, XV_ERROR, 0);
  1465. X  
  1466. X      if ((which = (int) xv_get(dialog->store_data, PANEL_VALUE)) == 0)
  1467. X         xv_set(item, PANEL_NOTIFY_STATUS, XV_OK, 0);
  1468. X      else if (((int) xv_get(dialog->dest, PANEL_VALUE)) == TO_BOSS) {
  1469. X         if (open_casio(port_file, baud_rate, parity)) {
  1470. X            if (start_session()) {
  1471. X               for (i = 0; i < MAX_OBJECT_KINDS; i++)
  1472. X--- 111,138 ----
  1473. X      object    *obj;
  1474. X      char    *path;
  1475. X  
  1476. X!     lets_get_busy(boss_base->base, TRUE, NULL);
  1477. X      xv_set(item, PANEL_NOTIFY_STATUS, XV_ERROR, 0);
  1478. X  
  1479. X      if ((which = (int) xv_get(dialog->store_data, PANEL_VALUE)) == 0)
  1480. X         xv_set(item, PANEL_NOTIFY_STATUS, XV_OK, 0);
  1481. X      else if (((int) xv_get(dialog->dest, PANEL_VALUE)) == TO_BOSS) {
  1482. X+        if (baud_rate == BAUD_9600) {
  1483. X+           i = notice_prompt(boss_base->base, NULL,
  1484. X+                                NOTICE_MESSAGE_STRINGS, "Storing data to the BOSS at 9600 baud is known",
  1485. X+                                               "to be unreliable.  You should reduce the baud",
  1486. X+                                                 "rate to 4800 or lower before proceeding.",
  1487. X+                                                 " ",
  1488. X+                                                 "Do you wish to continue?",
  1489. X+                                                 NULL,
  1490. X+                                NOTICE_BUTTON_YES, "Continue",
  1491. X+                                NOTICE_BUTTON_NO, "Cancel",
  1492. X+                             0);
  1493. X+           if (i == NOTICE_NO) {
  1494. X+              lets_get_busy(boss_base->base, FALSE, NULL);
  1495. X+              return;
  1496. X+              }
  1497. X+           }
  1498. X         if (open_casio(port_file, baud_rate, parity)) {
  1499. X            if (start_session()) {
  1500. X               for (i = 0; i < MAX_OBJECT_KINDS; i++)
  1501. X***************
  1502. X*** 160,164 ****
  1503. X            xv_set(item, PANEL_NOTIFY_STATUS, XV_OK, 0);
  1504. X            }
  1505. X         }
  1506. X!     lets_get_busy(FALSE, NULL);
  1507. X  }
  1508. X--- 178,182 ----
  1509. X            xv_set(item, PANEL_NOTIFY_STATUS, XV_OK, 0);
  1510. X            }
  1511. X         }
  1512. X!     lets_get_busy(boss_base->base, FALSE, NULL);
  1513. X  }
  1514. X*** expand.c.orig    Fri Nov 30 08:44:28 1990
  1515. X--- expand.c    Fri Jun  8 11:35:59 1990
  1516. X***************
  1517. X*** 1,5 ****
  1518. X  /************************************************************************/
  1519. X! /*    Copyright 1990 by Chuck Musciano and Harris Corporation        */
  1520. X  /*                                    */
  1521. X  /*    Permission to use, copy, modify, and distribute this software    */
  1522. X  /*    and its documentation for any purpose and without fee is    */
  1523. X--- 1,5 ----
  1524. X  /************************************************************************/
  1525. X! /*    Copyright 1988-1990 by Chuck Musciano and Harris Corporation    */
  1526. X  /*                                    */
  1527. X  /*    Permission to use, copy, modify, and distribute this software    */
  1528. X  /*    and its documentation for any purpose and without fee is    */
  1529. X***************
  1530. X*** 11,22 ****
  1531. X  /*    of the software without specific, written prior permission.    */
  1532. X  /*    Chuck Musciano and Harris Corporation make no representations    */
  1533. X  /*    about the suitability of this software for any purpose.  It is    */
  1534. X! /*    provided "as is" without express or implied warranty.        */
  1535. X! /*                                    */
  1536. X! /*    This code contains data and information that is proprietary    */
  1537. X! /*    to Casio Corporation.  You may be subject to legal action if    */
  1538. X! /*    this information is released without explicit permission from    */
  1539. X! /*    Casio.                                */
  1540. X  /************************************************************************/
  1541. X  
  1542. X  #include    <sys/types.h>
  1543. X--- 11,19 ----
  1544. X  /*    of the software without specific, written prior permission.    */
  1545. X  /*    Chuck Musciano and Harris Corporation make no representations    */
  1546. X  /*    about the suitability of this software for any purpose.  It is    */
  1547. X! /*    provided "as is" without express or implied warranty.  This     */
  1548. X! /*    software may not be sold without the prior explicit permission    */
  1549. X! /*    of Harris Corporation.                        */
  1550. X  /************************************************************************/
  1551. X  
  1552. X  #include    <sys/types.h>
  1553. X*** filename_completion.c.orig    Fri Nov 30 08:44:28 1990
  1554. X--- filename_completion.c    Tue Oct 23 08:20:50 1990
  1555. X***************
  1556. X*** 0 ****
  1557. X--- 1,52 ----
  1558. X+ /************************************************************************/
  1559. X+ /*    Copyright 1988-1990 by Chuck Musciano and Harris Corporation    */
  1560. X+ /*                                    */
  1561. X+ /*    Permission to use, copy, modify, and distribute this software    */
  1562. X+ /*    and its documentation for any purpose and without fee is    */
  1563. X+ /*    hereby granted, provided that the above copyright notice    */
  1564. X+ /*    appear in all copies and that both that copyright notice and    */
  1565. X+ /*    this permission notice appear in supporting documentation, and    */
  1566. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  1567. X+ /*    used in advertising or publicity pertaining to distribution    */
  1568. X+ /*    of the software without specific, written prior permission.    */
  1569. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  1570. X+ /*    about the suitability of this software for any purpose.  It is    */
  1571. X+ /*    provided "as is" without express or implied warranty.  This     */
  1572. X+ /*    software may not be sold without the prior explicit permission    */
  1573. X+ /*    of Harris Corporation.                        */
  1574. X+ /************************************************************************/
  1575. X+ 
  1576. X+ /************************************************************************/
  1577. X+ /*                                    */
  1578. X+ /*    filename_completion.c    completion handler for text items    */
  1579. X+ /*                                    */
  1580. X+ /************************************************************************/
  1581. X+ 
  1582. X+ #include    <stdio.h>
  1583. X+ #include    <sys/param.h>
  1584. X+ #include    <sys/types.h>
  1585. X+ #include    <xview/xview.h>
  1586. X+ #include    <xview/panel.h>
  1587. X+ 
  1588. X+ #include    "manifest.h"
  1589. X+ 
  1590. X+ /************************************************************************/
  1591. X+ EXPORT    Panel_setting    filename_completion(item, event)
  1592. X+ 
  1593. X+ Panel_item    item;
  1594. X+ Event        *event;
  1595. X+ 
  1596. X+ {    char    *p, *expand_filename();
  1597. X+ 
  1598. X+     switch (event_action(event)) {
  1599. X+        case '\n' :
  1600. X+        case '\r' :
  1601. X+        case ' '  : if ((p = expand_filename((char *) xv_get(item, PANEL_VALUE))) == NULL)
  1602. X+                  window_bell(xv_get(item, XV_OWNER));
  1603. X+                   else
  1604. X+                      xv_set(item, PANEL_VALUE, p, 0);
  1605. X+                   return(PANEL_NONE);
  1606. X+        case '\t' : return(event_shift_is_down(event)? PANEL_PREVIOUS : PANEL_NEXT);
  1607. X+        default   : return(panel_text_notify(item, event));
  1608. X+        }
  1609. X+ }
  1610. X*** list_misc.c.orig    Fri Nov 30 08:44:31 1990
  1611. X--- list_misc.c    Fri Nov  9 11:11:30 1990
  1612. X***************
  1613. X*** 0 ****
  1614. X--- 1,85 ----
  1615. X+ /************************************************************************/
  1616. X+ /*    Copyright 1988-1990 by Chuck Musciano and Harris Corporation    */
  1617. X+ /*                                    */
  1618. X+ /*    Permission to use, copy, modify, and distribute this software    */
  1619. X+ /*    and its documentation for any purpose and without fee is    */
  1620. X+ /*    hereby granted, provided that the above copyright notice    */
  1621. X+ /*    appear in all copies and that both that copyright notice and    */
  1622. X+ /*    this permission notice appear in supporting documentation, and    */
  1623. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  1624. X+ /*    used in advertising or publicity pertaining to distribution    */
  1625. X+ /*    of the software without specific, written prior permission.    */
  1626. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  1627. X+ /*    about the suitability of this software for any purpose.  It is    */
  1628. X+ /*    provided "as is" without express or implied warranty.  This     */
  1629. X+ /*    software may not be sold without the prior explicit permission    */
  1630. X+ /*    of Harris Corporation.                        */
  1631. X+ /************************************************************************/
  1632. X+ 
  1633. X+ /************************************************************************/
  1634. X+ /*                                    */
  1635. X+ /*    list_utils.c    other tools for manipulating panel settings    */
  1636. X+ /*                                    */
  1637. X+ /************************************************************************/
  1638. X+ 
  1639. X+ #include    <stdio.h>
  1640. X+ #include    <sys/param.h>
  1641. X+ #include    <sys/types.h>
  1642. X+ #include    <xview/xview.h>
  1643. X+ #include    <xview/panel.h>
  1644. X+ 
  1645. X+ #include    "manifest.h"
  1646. X+ 
  1647. X+ /************************************************************************/
  1648. X+ EXPORT    int    list_count(item)
  1649. X+ 
  1650. X+ Panel_item    item;
  1651. X+ 
  1652. X+ {    int    i, count, rows;
  1653. X+ 
  1654. X+     rows = (int) xv_get(item, PANEL_LIST_NROWS);
  1655. X+     for (i = count = 0; i < rows; i++)
  1656. X+        if (xv_get(item, PANEL_LIST_SELECTED, i))
  1657. X+           count++;
  1658. X+     return(count);
  1659. X+ }
  1660. X+ 
  1661. X+ /************************************************************************/
  1662. X+ EXPORT    empty_list(item)
  1663. X+ 
  1664. X+ Panel_item    item;
  1665. X+ 
  1666. X+ {    int    row;
  1667. X+ 
  1668. X+     row = (int) xv_get(item, PANEL_LIST_NROWS);
  1669. X+     for ( ; row > 0; row--)
  1670. X+        xv_set(item, PANEL_LIST_DELETE, row - 1, NULL);
  1671. X+ }
  1672. X+ 
  1673. X+ /************************************************************************/
  1674. X+ EXPORT    clear_list(item)
  1675. X+ 
  1676. X+ Panel_item    item;
  1677. X+ 
  1678. X+ {    int    i, row;
  1679. X+ 
  1680. X+     row = (int) xv_get(item, PANEL_LIST_NROWS);
  1681. X+     for (i = 0; i < row; i++)
  1682. X+        if (xv_get(item, PANEL_LIST_SELECTED, i))
  1683. X+           xv_set(item, PANEL_LIST_SELECT, i, FALSE, NULL);
  1684. X+ }
  1685. X+ 
  1686. X+ /************************************************************************/
  1687. X+ EXPORT    int    first_selected(item)
  1688. X+ 
  1689. X+ Panel_item    item;
  1690. X+ 
  1691. X+ {    int    i, row;
  1692. X+ 
  1693. X+     row = (int) xv_get(item, PANEL_LIST_NROWS);
  1694. X+     for (i = 0; i < row; i++)
  1695. X+        if (xv_get(item, PANEL_LIST_SELECTED, i))
  1696. X+           return(i);
  1697. X+     return(0);
  1698. X+ }
  1699. X+        
  1700. X*** misc.c.orig    Fri Nov 30 08:44:33 1990
  1701. X--- misc.c    Fri Nov  2 07:34:57 1990
  1702. X***************
  1703. X*** 204,206 ****
  1704. X--- 204,220 ----
  1705. X         }
  1706. X      return(c);
  1707. X  }
  1708. X+ 
  1709. X+ /************************************************************************/
  1710. X+ EXPORT    int    is_empty(s)
  1711. X+ 
  1712. X+ char    *s;
  1713. X+ 
  1714. X+ {
  1715. X+     if (s == NULL)
  1716. X+        return(TRUE);
  1717. X+     for (; *s; s++)
  1718. X+        if (!isspace(*s))
  1719. X+           return(FALSE); 
  1720. X+     return(TRUE);
  1721. X+ }
  1722. X*** patchlevel.h.orig    Fri Nov 30 08:44:38 1990
  1723. X--- patchlevel.h    Fri Nov 30 08:12:35 1990
  1724. X***************
  1725. X*** 22,26 ****
  1726. X--- 22,32 ----
  1727. X  /************************************************************************/
  1728. X  /*                                    */
  1729. X  /*    0    15 Oct 90    Initial release                */
  1730. X+ /*                comp.sources.x: Volume 10, Issues 3-8    */
  1731. X+ /*                                    */
  1732. X+ /*    1     1 Dec 90    Restructured code for maintainability    */
  1733. X+ /*                Added "About Boss..."            */
  1734. X+ /*                Added warning about downloads at 9600    */
  1735. X+ /*                   baud                    */
  1736. X  /*                                    */
  1737. X  /************************************************************************/
  1738. X*** pinned_menu_notify.c.orig    Fri Nov 30 08:44:39 1990
  1739. X--- pinned_menu_notify.c    Tue Oct 23 08:03:27 1990
  1740. X***************
  1741. X*** 0 ****
  1742. X--- 1,52 ----
  1743. X+ /************************************************************************/
  1744. X+ /*    Copyright 1988-1990 by Chuck Musciano and Harris Corporation    */
  1745. X+ /*                                    */
  1746. X+ /*    Permission to use, copy, modify, and distribute this software    */
  1747. X+ /*    and its documentation for any purpose and without fee is    */
  1748. X+ /*    hereby granted, provided that the above copyright notice    */
  1749. X+ /*    appear in all copies and that both that copyright notice and    */
  1750. X+ /*    this permission notice appear in supporting documentation, and    */
  1751. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  1752. X+ /*    used in advertising or publicity pertaining to distribution    */
  1753. X+ /*    of the software without specific, written prior permission.    */
  1754. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  1755. X+ /*    about the suitability of this software for any purpose.  It is    */
  1756. X+ /*    provided "as is" without express or implied warranty.  This     */
  1757. X+ /*    software may not be sold without the prior explicit permission    */
  1758. X+ /*    of Harris Corporation.                        */
  1759. X+ /************************************************************************/
  1760. X+ 
  1761. X+ /************************************************************************/
  1762. X+ /*                                    */
  1763. X+ /*    pinned_menu_notify.c    GUIDE callback for pinned menus        */
  1764. X+ /*                                    */
  1765. X+ /************************************************************************/
  1766. X+ 
  1767. X+ #include    <stdio.h>
  1768. X+ #include    <sys/param.h>
  1769. X+ #include    <sys/types.h>
  1770. X+ #include    <xview/xview.h>
  1771. X+ 
  1772. X+ #include    "manifest.h"
  1773. X+ 
  1774. X+ /************************************************************************/
  1775. X+ EXPORT    void    pinned_menu_notify(menu, item)
  1776. X+ 
  1777. X+ Menu        menu;
  1778. X+ Menu_item    item;
  1779. X+ 
  1780. X+ {    Xv_opaque    pin_window     = (Xv_opaque) xv_get(menu, MENU_PIN_WINDOW);
  1781. X+     void        (*menu_notify)() = (void (*)()) xv_get(menu, MENU_GEN_PROC);
  1782. X+     void        (*item_notify)() = (void (*)()) xv_get(item, MENU_GEN_PROC);
  1783. X+     
  1784. X+     if (pin_window && xv_get(pin_window, XV_SHOW)) {
  1785. X+        if (menu_notify)
  1786. X+           (*menu_notify)(menu, MENU_NOTIFY);
  1787. X+        if (item_notify)
  1788. X+           (*item_notify)(item, MENU_NOTIFY);
  1789. X+        if (item_notify)
  1790. X+           (*item_notify)(item, MENU_NOTIFY_DONE);
  1791. X+        if (menu_notify)
  1792. X+           (*menu_notify)(menu, MENU_NOTIFY_DONE);
  1793. X+     }
  1794. X+ }
  1795. X*** place_dialog.c.orig    Fri Nov 30 08:44:40 1990
  1796. X--- place_dialog.c    Thu Nov 29 15:18:03 1990
  1797. X***************
  1798. X*** 0 ****
  1799. X--- 1,69 ----
  1800. X+ /************************************************************************/
  1801. X+ /*    Copyright 1988-1990 by Chuck Musciano and Harris Corporation    */
  1802. X+ /*                                    */
  1803. X+ /*    Permission to use, copy, modify, and distribute this software    */
  1804. X+ /*    and its documentation for any purpose and without fee is    */
  1805. X+ /*    hereby granted, provided that the above copyright notice    */
  1806. X+ /*    appear in all copies and that both that copyright notice and    */
  1807. X+ /*    this permission notice appear in supporting documentation, and    */
  1808. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  1809. X+ /*    used in advertising or publicity pertaining to distribution    */
  1810. X+ /*    of the software without specific, written prior permission.    */
  1811. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  1812. X+ /*    about the suitability of this software for any purpose.  It is    */
  1813. X+ /*    provided "as is" without express or implied warranty.  This     */
  1814. X+ /*    software may not be sold without the prior explicit permission    */
  1815. X+ /*    of Harris Corporation.                        */
  1816. X+ /************************************************************************/
  1817. X+ 
  1818. X+ /************************************************************************/
  1819. X+ /*                                    */
  1820. X+ /*    place_dialog.c    position a dialog box at the right place    */
  1821. X+ /*                                    */
  1822. X+ /************************************************************************/
  1823. X+ 
  1824. X+ #include    <stdio.h>
  1825. X+ #include    <sys/param.h>
  1826. X+ #include    <sys/types.h>
  1827. X+ #include    <xview/xview.h>
  1828. X+ #include    <X11/Xutil.h>
  1829. X+ 
  1830. X+ #include    "manifest.h"
  1831. X+ 
  1832. X+ /************************************************************************/
  1833. X+ EXPORT    void    place_dialog(base, dialog)
  1834. X+ 
  1835. X+ Xv_opaque    base;
  1836. X+ Xv_opaque    dialog;
  1837. X+ 
  1838. X+ {    Rect        br, dr, sr;
  1839. X+     XWMHints    *hints;
  1840. X+ 
  1841. X+     sr = *((Rect *) xv_get(base, WIN_SCREEN_RECT));
  1842. X+     frame_get_rect(base, &br);
  1843. X+     frame_get_rect(dialog, &dr);
  1844. X+     if (rect_right(&br) + dr.r_width < sr.r_width) {
  1845. X+        dr.r_left = rect_right(&br);
  1846. X+        dr.r_top = br.r_top;
  1847. X+        }
  1848. X+     else if (dr.r_width <= br.r_left) {
  1849. X+        dr.r_left = br.r_left - dr.r_width;
  1850. X+        dr.r_top = br.r_top;
  1851. X+        }
  1852. X+     else {
  1853. X+        dr.r_left = br.r_left + 32;
  1854. X+        dr.r_top = br.r_top + 32;
  1855. X+        }
  1856. X+     if (dr.r_top + dr.r_height > sr.r_height)
  1857. X+        dr.r_top = sr.r_height - dr.r_height;
  1858. X+     if (dr.r_top < 0)
  1859. X+        dr.r_top = 0;
  1860. X+     frame_set_rect(dialog, &dr);
  1861. X+ 
  1862. X+     hints = XGetWMHints(xv_get(dialog, XV_DISPLAY), xv_get(dialog, XV_XID));
  1863. X+     hints->flags |= StateHint;
  1864. X+     hints->initial_state = NormalState;
  1865. X+     XSetWMHints(xv_get(dialog, XV_DISPLAY), xv_get(dialog, XV_XID), hints);
  1866. X+     XFree(hints);
  1867. X+ }
  1868. X+ 
  1869. X*** send_mail.c.orig    Fri Nov 30 08:44:44 1990
  1870. X--- send_mail.c    Thu Nov 29 15:58:19 1990
  1871. X***************
  1872. X*** 0 ****
  1873. X--- 1,146 ----
  1874. X+ /************************************************************************/
  1875. X+ /*    Copyright 1990 by Chuck Musciano and Harris Corporation        */
  1876. X+ /*                                    */
  1877. X+ /*    Permission to use, copy, modify, and distribute this software    */
  1878. X+ /*    and its documentation for any purpose and without fee is    */
  1879. X+ /*    hereby granted, provided that the above copyright notice    */
  1880. X+ /*    appear in all copies and that both that copyright notice and    */
  1881. X+ /*    this permission notice appear in supporting documentation, and    */
  1882. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  1883. X+ /*    used in advertising or publicity pertaining to distribution    */
  1884. X+ /*    of the software without specific, written prior permission.    */
  1885. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  1886. X+ /*    about the suitability of this software for any purpose.  It is    */
  1887. X+ /*    provided "as is" without express or implied warranty.        */
  1888. X+ /*                                    */
  1889. X+ /*    This code contains data and information that is proprietary    */
  1890. X+ /*    to Casio Corporation.  You may be subject to legal action if    */
  1891. X+ /*    this information is released without explicit permission from    */
  1892. X+ /*    Casio.                                */
  1893. X+ /************************************************************************/
  1894. X+ 
  1895. X+ /************************************************************************/
  1896. X+ /*                                    */
  1897. X+ /*    send_mail.c    display a little information window        */
  1898. X+ /*                                    */
  1899. X+ /************************************************************************/
  1900. X+ 
  1901. X+ #include    <stdio.h>
  1902. X+ #include    <sys/param.h>
  1903. X+ #include    <sys/types.h>
  1904. X+ #include    <xview/xview.h>
  1905. X+ #include    <xview/panel.h>
  1906. X+ #include    <xview/textsw.h>
  1907. X+ #include    "boss_ui.h"
  1908. X+ 
  1909. X+ #include    "manifest.h"
  1910. X+ 
  1911. X+ #define        VERSION            "1.0a"
  1912. X+ 
  1913. X+ PUBLIC    boss_base_objects    *boss_base;
  1914. X+ 
  1915. X+ PRIVATE    boss_mail_objects    *dialog = NULL;
  1916. X+ 
  1917. X+ /************************************************************************/
  1918. X+ EXPORT    popup_send_mail(item, event)
  1919. X+ 
  1920. X+ Panel_item    item;
  1921. X+ Event        *event;
  1922. X+ 
  1923. X+ {
  1924. X+     if (dialog == NULL) {
  1925. X+        dialog = boss_mail_objects_initialize(NULL, boss_base->base);
  1926. X+        place_dialog(boss_base->base, dialog->mail);
  1927. X+        xv_set(dialog->other_address, WIN_SHOW, FALSE, NULL);
  1928. X+        }
  1929. X+     xv_set(dialog->mail, XV_SHOW, TRUE, NULL);
  1930. X+     xv_set(item, PANEL_NOTIFY_STATUS, XV_OK, 0);
  1931. X+ }
  1932. X+ 
  1933. X+ /************************************************************************/
  1934. X+ EXPORT    void    handle_address(item, value, event)
  1935. X+ 
  1936. X+ Panel_item    item;
  1937. X+ int        value;
  1938. X+ Event        *event;
  1939. X+ 
  1940. X+ {
  1941. X+     if (value == 2) {
  1942. X+        xv_set(dialog->other_address, WIN_SHOW, TRUE, NULL);
  1943. X+        panel_paint(dialog->address, PANEL_NO_CLEAR);
  1944. X+        panel_paint(dialog->other_address, PANEL_NO_CLEAR);
  1945. X+        }
  1946. X+     else {
  1947. X+        xv_set(dialog->other_address, WIN_SHOW, FALSE, NULL);
  1948. X+        panel_paint(dialog->address, PANEL_NO_CLEAR);
  1949. X+        }
  1950. X+ }
  1951. X+ 
  1952. X+ /************************************************************************/
  1953. X+ EXPORT    void    done_mail(frame)
  1954. X+ 
  1955. X+ Frame        frame;
  1956. X+ 
  1957. X+ {
  1958. X+     textsw_reset(dialog->message, 0, 0);
  1959. X+     xv_set(frame, XV_SHOW, FALSE, 0);
  1960. X+ }
  1961. X+ 
  1962. X+ /************************************************************************/
  1963. X+ EXPORT    void    send_mail(item, event)
  1964. X+ 
  1965. X+ Panel_item    item;
  1966. X+ Event        *event;
  1967. X+ 
  1968. X+ {    char    cmd[1024], *buf;
  1969. X+     int    val, size;
  1970. X+     FILE    *pipe;
  1971. X+ 
  1972. X+     xv_set(item, PANEL_NOTIFY_STATUS, XV_ERROR, 0);
  1973. X+     val = (int) xv_get(dialog->address, PANEL_VALUE);
  1974. X+     if (val != 2)
  1975. X+        sprintf(cmd, "%s %s", MAILER, xv_get(dialog->address, PANEL_CHOICE_STRING, val));
  1976. X+     else {
  1977. X+        buf = (char *) xv_get(dialog->other_address, PANEL_VALUE);
  1978. X+        if (is_empty(buf)) {
  1979. X+           error("You must specify an alternate address before sending your message");
  1980. X+           return;
  1981. X+           }
  1982. X+        else
  1983. X+           sprintf(cmd, "%s %s", MAILER, buf);
  1984. X+        }
  1985. X+     size = (int) xv_get(dialog->message, TEXTSW_LENGTH);
  1986. X+     if (size == 0) {
  1987. X+        error("Please type a message before sending the mail");
  1988. X+        return;
  1989. X+        }
  1990. X+     if ((pipe = popen(cmd, "w")) == NULL) {
  1991. X+        error("Could not invoke \"%s\" to send mail", cmd);
  1992. X+        return;
  1993. X+        }
  1994. X+     lets_get_busy(boss_base->base, TRUE, NULL);
  1995. X+     buf = (char *) malloc(size);
  1996. X+     xv_get(dialog->message, TEXTSW_CONTENTS, 0, buf, size);
  1997. X+     fprintf(pipe, "Subject: Boss %s comment\n\n", VERSION);
  1998. X+     if (fwrite(buf, 1, size, pipe) != size) {
  1999. X+        error("Could not write message to the mailer");
  2000. X+        free(buf);
  2001. X+        return;
  2002. X+        }
  2003. X+     pclose(pipe);
  2004. X+     free(buf);
  2005. X+     textsw_reset(dialog->message, 0, 0);
  2006. X+     lets_get_busy(boss_base->base, FALSE, NULL);
  2007. X+     xv_set(item, PANEL_NOTIFY_STATUS, XV_OK, 0);
  2008. X+ }
  2009. X+ 
  2010. X+ /************************************************************************/
  2011. X+ EXPORT    void    cancel_mail(item, event)
  2012. X+ 
  2013. X+ Panel_item    item;
  2014. X+ Event        *event;
  2015. X+ 
  2016. X+ {
  2017. X+     textsw_reset(dialog->message, 0, 0);
  2018. X+     xv_set(item, PANEL_NOTIFY_STATUS, XV_OK, 0);
  2019. X+ }
  2020. X*** window_misc.c.orig    Fri Nov 30 08:44:45 1990
  2021. X--- window_misc.c    Tue Oct 23 14:17:46 1990
  2022. X***************
  2023. X*** 51,182 ****
  2024. X                   NOTICE_BUTTON_YES, "OK",
  2025. X                0);
  2026. X  }
  2027. X- 
  2028. X- /************************************************************************/
  2029. X- EXPORT    void    pinned_menu_notify(menu, item)
  2030. X- 
  2031. X- Menu        menu;
  2032. X- Menu_item    item;
  2033. X- 
  2034. X- {    Xv_opaque    pin_window     = (Xv_opaque) xv_get(menu, MENU_PIN_WINDOW);
  2035. X-     void        (*menu_notify)() = (void (*)()) xv_get(menu, MENU_GEN_PROC);
  2036. X-     void        (*item_notify)() = (void (*)()) xv_get(item, MENU_GEN_PROC);
  2037. X-     
  2038. X-     if (pin_window && xv_get(pin_window, XV_SHOW)) {
  2039. X-        if (menu_notify)
  2040. X-           (*menu_notify)(menu, MENU_NOTIFY);
  2041. X-        if (item_notify)
  2042. X-           (*item_notify)(item, MENU_NOTIFY);
  2043. X-        if (item_notify)
  2044. X-           (*item_notify)(item, MENU_NOTIFY_DONE);
  2045. X-        if (menu_notify)
  2046. X-           (*menu_notify)(menu, MENU_NOTIFY_DONE);
  2047. X-     }
  2048. X- }
  2049. X- 
  2050. X- /************************************************************************/
  2051. X- EXPORT    Panel_setting    filename_completion(item, event)
  2052. X- 
  2053. X- Panel_item    item;
  2054. X- Event        *event;
  2055. X- 
  2056. X- {    char    *p, *expand_filename();
  2057. X- 
  2058. X-     switch (event_action(event)) {
  2059. X-        case '\n' :
  2060. X-        case '\r' :
  2061. X-        case ' '  : if ((p = expand_filename((char *) xv_get(item, PANEL_VALUE))) == NULL)
  2062. X-                  window_bell(xv_get(item, XV_OWNER));
  2063. X-                   else
  2064. X-                      xv_set(item, PANEL_VALUE, p, 0);
  2065. X-                   return(PANEL_NONE);
  2066. X-        case '\t' : return(event_shift_is_down(event)? PANEL_PREVIOUS : PANEL_NEXT);
  2067. X-        default   : return(panel_text_notify(item, event));
  2068. X-        }
  2069. X- }
  2070. X- 
  2071. X- /************************************************************************/
  2072. X- EXPORT    void    place_dialog(base, dialog)
  2073. X- 
  2074. X- Xv_opaque    base;
  2075. X- Xv_opaque    dialog;
  2076. X- 
  2077. X- {    Rect    br, dr, sr;
  2078. X- 
  2079. X-     sr = *((Rect *) xv_get(base, WIN_SCREEN_RECT));
  2080. X-     frame_get_rect(base, &br);
  2081. X-     frame_get_rect(dialog, &dr);
  2082. X-     if (rect_right(&br) + dr.r_width < sr.r_width) {
  2083. X-        dr.r_left = rect_right(&br);
  2084. X-        dr.r_top = br.r_top;
  2085. X-        }
  2086. X-     else if (dr.r_width <= br.r_left) {
  2087. X-        dr.r_left = br.r_left - dr.r_width;
  2088. X-        dr.r_top = br.r_top;
  2089. X-        }
  2090. X-     else {
  2091. X-        dr.r_left = br.r_left + 32;
  2092. X-        dr.r_top = br.r_top + 32;
  2093. X-        }
  2094. X-     frame_set_rect(dialog, &dr);
  2095. X- }
  2096. X- 
  2097. X- /************************************************************************/
  2098. X- EXPORT    int    list_count(item)
  2099. X- 
  2100. X- Panel_item    item;
  2101. X- 
  2102. X- {    int    i, count, rows;
  2103. X- 
  2104. X-     rows = (int) xv_get(item, PANEL_LIST_NROWS);
  2105. X-     for (i = count = 0; i < rows; i++)
  2106. X-        if (xv_get(item, PANEL_LIST_SELECTED, i))
  2107. X-           count++;
  2108. X-     return(count);
  2109. X- }
  2110. X- 
  2111. X- /************************************************************************/
  2112. X- EXPORT    empty_list(item)
  2113. X- 
  2114. X- Panel_item    item;
  2115. X- 
  2116. X- {    int    row;
  2117. X- 
  2118. X-     row = (int) xv_get(item, PANEL_LIST_NROWS);
  2119. X-     for ( ; row > 0; row--)
  2120. X-        xv_set(item, PANEL_LIST_DELETE, row - 1, NULL);
  2121. X- }
  2122. X- 
  2123. X- /************************************************************************/
  2124. X- PRIVATE    set_busy(busy, skip)
  2125. X- 
  2126. X- int    busy;
  2127. X- Frame    skip;
  2128. X- 
  2129. X- {    Frame    subframe;
  2130. X-     int    i;
  2131. X- 
  2132. X-     for (i = 1; subframe = (Frame) xv_get(boss_base->base, FRAME_NTH_SUBFRAME, i); i++)
  2133. X-        if (subframe != skip)
  2134. X-           if (xv_get(subframe, XV_SHOW))
  2135. X-              xv_set(subframe, FRAME_BUSY, busy, NULL);
  2136. X-     xv_set(boss_base->base, FRAME_BUSY, busy, NULL);
  2137. X- }
  2138. X- 
  2139. X- /************************************************************************/
  2140. X- EXPORT    lets_get_busy(busy, skip)
  2141. X- 
  2142. X- int    busy;
  2143. X- Frame    skip;
  2144. X- 
  2145. X- {    static    int    depth = 0;
  2146. X- 
  2147. X-     if (busy) {
  2148. X-        if (depth == 0)
  2149. X-           set_busy(TRUE, skip);
  2150. X-        depth++;
  2151. X-        }
  2152. X-     else if (depth > 0)
  2153. X-        if (--depth == 0)
  2154. X-           set_busy(FALSE, NULL);
  2155. X- }
  2156. X--- 51,53 ----
  2157. END_OF_FILE
  2158. if test 65348 -ne `wc -c <'patch'`; then
  2159.     echo shar: \"'patch'\" unpacked with wrong size!
  2160. fi
  2161. # end of 'patch'
  2162. fi
  2163. echo shar: End of shell archive.
  2164. exit 0
  2165.  
  2166. Chuck Musciano                ARPA  : chuck@trantor.harris-atd.com
  2167. Harris Corporation             Usenet: ...!uunet!x102a!trantor!chuck
  2168. PO Box 37, MS 3A/1912            AT&T  : (407) 727-6131
  2169. Melbourne, FL 32902            FAX   : (407) 729-2537
  2170.  
  2171. A good newspaper is never good enough,
  2172.     but a lousy newspaper is a joy forever.        -- Garrison Keillor
  2173.  
  2174. dan
  2175. ----------------------------------------------------
  2176. O'Reilly && Associates   argv@sun.com / argv@ora.com
  2177. Opinions expressed reflect those of the author only.
  2178. --
  2179. dan
  2180. ----------------------------------------------------
  2181. O'Reilly && Associates   argv@sun.com / argv@ora.com
  2182. Opinions expressed reflect those of the author only.
  2183.